package com.coment.game.config;

import com.coment.po.roles.RolePanel;
import java.util.List;
import java.util.Map;

import org.springframework.data.mongodb.core.index.Indexed;

public class PVELevelConfig {
   @Indexed
   private Integer level;
   private Integer type;
   public Map<Integer, Monster> monster;
   public List<Reward> rewards;

   
   public Integer getLevel() {
      return this.level;
   }

   
   public Integer getType() {
      return this.type;
   }

   
   public Map<Integer, Monster> getMonster() {
      return this.monster;
   }

   
   public List<Reward> getRewards() {
      return this.rewards;
   }

   
   public void setLevel(final Integer level) {
      this.level = level;
   }

   
   public void setType(final Integer type) {
      this.type = type;
   }

   
   public void setMonster(final Map<Integer, Monster> monster) {
      this.monster = monster;
   }

   
   public void setRewards(final List<Reward> rewards) {
      this.rewards = rewards;
   }

   
   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof PVELevelConfig other)) {
         return false;
      } else {
          if (!other.canEqual(this)) {
            return false;
         } else {
            Object this$level = this.getLevel();
            Object other$level = other.getLevel();
            if (this$level == null) {
               if (other$level != null) {
                  return false;
               }
            } else if (!this$level.equals(other$level)) {
               return false;
            }

            Object this$type = this.getType();
            Object other$type = other.getType();
            if (this$type == null) {
               if (other$type != null) {
                  return false;
               }
            } else if (!this$type.equals(other$type)) {
               return false;
            }

            Object this$monster = this.getMonster();
            Object other$monster = other.getMonster();
            if (this$monster == null) {
               if (other$monster != null) {
                  return false;
               }
            } else if (!this$monster.equals(other$monster)) {
               return false;
            }

            Object this$rewards = this.getRewards();
            Object other$rewards = other.getRewards();
            if (this$rewards == null) {
                return other$rewards == null;
            } else return this$rewards.equals(other$rewards);
         }
      }
   }

   
   protected boolean canEqual(final Object other) {
      return other instanceof PVELevelConfig;
   }

   
   public int hashCode() {
      int PRIME = 59;
      int result = 1;
      Object $level = this.getLevel();
      result = result * 59 + ($level == null ? 43 : $level.hashCode());
      Object $type = this.getType();
      result = result * 59 + ($type == null ? 43 : $type.hashCode());
      Object $monster = this.getMonster();
      result = result * 59 + ($monster == null ? 43 : $monster.hashCode());
      Object $rewards = this.getRewards();
      result = result * 59 + ($rewards == null ? 43 : $rewards.hashCode());
      return result;
   }

   
   public String toString() {
      Integer var10000 = this.getLevel();
      return "PVELevelConfig(level=" + var10000 + ", type=" + this.getType() + ", monster=" + this.getMonster() + ", rewards=" + this.getRewards() + ")";
   }

   
   public PVELevelConfig(final Integer level, final Integer type, final Map<Integer, Monster> monster, final List<Reward> rewards) {
      this.level = level;
      this.type = type;
      this.monster = monster;
      this.rewards = rewards;
   }

   
   public PVELevelConfig() {
   }

   public static class Monster {
      private Integer id;
      private Integer num;
      private RolePanel rolePanel;

      
      public Integer getId() {
         return this.id;
      }

      
      public Integer getNum() {
         return this.num;
      }

      
      public RolePanel getRolePanel() {
         return this.rolePanel;
      }

      
      public void setId(final Integer id) {
         this.id = id;
      }

      
      public void setNum(final Integer num) {
         this.num = num;
      }

      
      public void setRolePanel(final RolePanel rolePanel) {
         this.rolePanel = rolePanel;
      }

      
      public boolean equals(final Object o) {
         if (o == this) {
            return true;
         } else if (!(o instanceof Monster other)) {
            return false;
         } else {
             if (!other.canEqual(this)) {
               return false;
            } else {
               Object this$id = this.getId();
               Object other$id = other.getId();
               if (this$id == null) {
                  if (other$id != null) {
                     return false;
                  }
               } else if (!this$id.equals(other$id)) {
                  return false;
               }

               Object this$num = this.getNum();
               Object other$num = other.getNum();
               if (this$num == null) {
                  if (other$num != null) {
                     return false;
                  }
               } else if (!this$num.equals(other$num)) {
                  return false;
               }

               Object this$rolePanel = this.getRolePanel();
               Object other$rolePanel = other.getRolePanel();
               if (this$rolePanel == null) {
                   return other$rolePanel == null;
               } else return this$rolePanel.equals(other$rolePanel);
            }
         }
      }

      
      protected boolean canEqual(final Object other) {
         return other instanceof Monster;
      }

      
      public int hashCode() {
         int PRIME = 59;
         int result = 1;
         Object $id = this.getId();
         result = result * 59 + ($id == null ? 43 : $id.hashCode());
         Object $num = this.getNum();
         result = result * 59 + ($num == null ? 43 : $num.hashCode());
         Object $rolePanel = this.getRolePanel();
         result = result * 59 + ($rolePanel == null ? 43 : $rolePanel.hashCode());
         return result;
      }

      
      public String toString() {
         Integer var10000 = this.getId();
         return "PVELevelConfig.Monster(id=" + var10000 + ", num=" + this.getNum() + ", rolePanel=" + this.getRolePanel() + ")";
      }

      
      public Monster(final Integer id, final Integer num, final RolePanel rolePanel) {
         this.id = id;
         this.num = num;
         this.rolePanel = rolePanel;
      }

      
      public Monster() {
      }
   }
}
